var Validator = require('../../../../../utils/validator');          //导入验证

var app = getApp()
Page({
  data: {
    qqNum: 0,
    modalCancel: true,                            //是否显示取消，true为隐藏
    modalHidden: true,                            //模态框true为隐藏
    toastHidden: true,                            //toast框是否隐藏，true为隐藏
    inputObject: {
      qq: ['', '']                             //与页面中的input框的data-xxx一致
    },
    whichTip: 'different',
    modalTip: '发生未知错误',
    modalTipsGroup: {
      'error': '发生未知错误',
      'empty': '请输入QQ账号', 
      'different': '您两次输入的QQ账号不同，请再次输入。',
    },
    eventName: '',
  },
  onLoad: function (option) {
    console.log('onLoad qq')
    var self = this
    var qqNum = Number(option.qq)
    self.setData({
      qqNum: qqNum
    })
  },
  bindKeyInput: function(e){                                                        //输入绑定往数据池添加数据  
    var self = this;
    var targetInput = e.detail.value;
    var dataName = e.target.dataset.group                                           //所能获取的data-group="qqNum-0"
    if(dataName){                         
      var regNum = /\d+/g;                                                          //匹配数字
      var regClass = /[a-zA-Z]+/g;                                                  //匹配英文用于类名检索

      var keyNum = dataName.match(regNum)[0]
      var keyClass = dataName.match(regClass)[0]
      !self.data.inputObject[keyClass] && (self.data.inputObject[keyClass] = []);   //创建数组
      self.data.inputObject[keyClass][keyNum] = targetInput;                        //更改数据池的需要验证的数据
    }
  },
  modalTap: function(e) {                                             //点击时候出现模态框
    var self = this;
    if(self.data.modalTip&&self.data.modalTipsGroup){

      //根据data值比对调用不同的modalTip
      for(var i in self.data.inputObject){
        for(var j in self.data.inputObject[i]){
          Validator()
        }
      }
      var dataTips = e.target.dataset.modalTip;                       //模态框data属性
      var btnCancel = e.target.dataset.cancelBtn?true:false;          //属性连杠变驼峰
      var modalConfirmName =e.target.dataset.modalTip +'Handle';      //绑定确认后事件名称
      self.setData({
        modalHidden: false,
        modalCancel: !btnCancel,                                      //赋值给no-cancel
        modalTip : self.data.modalTipsGroup[dataTips],                //控制模态框内容
        eventName: modalConfirmName,                                  //更改模态框确认事件 <event>+Handle
      })
    } else{
      console.error('Page.data中tip或modalTipsGroup未定义')
    }
  },
  modalCancelHandle: function(e){                                 //公用取消事件
    this.setData({
      modalHidden: true,
    })
  },
  modalConfirmHandle: function(e){                                //公用确认事件
    var self = this;
    var eventName = self.data.eventName;  
    self[eventName]&&self[eventName]();                           //若存在确认事件则确认后触发事件，分发，并将事源传递
    this.setData({
      modalHidden: true
    })
  },
})
